﻿using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ZiChen.SoXunLeiPan.Resources.Converters
{
    public class BooleanInverterConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            // 1. 如果是 bool? 或 bool
            if (value is bool boolValue)
                return !boolValue;

            // 2. 如果是 null
            if (value == null)
                return false; // null 视为 false → 取反为 true

            // 3. 如果是实体对象（任何非 null 的引用类型）
            // 例如：FileItem、User、ViewModel 等
            if (value is not ValueType)
                return false; // 对象存在 → 视为 true → 取反为 false

            // 4. 如果是值类型但不是 bool（如 int, double）
            // 可选：是否把 0 视为 false，非 0 视为 true？
            // 这里我们保守处理：非 bool 值类型一律视为 true → 取反为 false
            return false;
        }


        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }
}
